#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

using namespace std;

typedef vector<vector<double> > mdouble;

void readFile(mdouble&X, vector<int>&Y, string file, bool insX0);
void explode(char* aux, mdouble&X, vector<int>&Y, bool insX0);
void explode(string line, mdouble&X, vector<int>&Y, bool insX0);
void saveFile(mdouble&X, vector<int>&y, string file);
void loadConfig(double &delta, int &nMaxIt, double &tasa, bool &zero, bool &error, bool &maxIt, int &n, bool &varW);
void genRandom(string file, string new_file, double desv, int n);
void particionado(mdouble&X, vector<int>&Y, float porcTraining,int numpart);
int sign(double x);
double prod_punto(vector<double> &x, vector<double> &w);
vector<double> prod_mat(mdouble &X, vector<double> &w);

